package com.saas.aop;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

public class CarInvocatioHandler<T> implements InvocationHandler {
    private final T t;

    public CarInvocatioHandler(T t) {
        this.t = t;
    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        //若执行的是use()方法，则对该方法进行增强
        if (method.getName().equals("use")) {
            //调用原方法，保持原有的功能
            method.invoke(t, args);
            //增强方法
            System.out.println("汽车使用电力");
        }
        return null;
    }
}
